<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

//include_once $_SERVER['DOCUMENT_ROOT'] . "/DivSoft/Basicas/usuario/usuario.php";
//include_once $_SERVER['DOCUMENT_ROOT']."/DivSoft/Util/variareis.php";

/* $ds = DIRECTORY_SEPARATOR;
  $path = $_SERVER['DOCUMENT_ROOT'] . $ds . "DivSoft" . $ds . "Basicas" . $ds . "usuario" . $ds . "usuario.php";
  include_once $path;
 */
class DMysql {

    var $mysql = null;
    var $usuarioTable = null;
    var $companyTable = null;
    var $usuarioCache = null;
    var $empresaCache = null;

    /**
     * Constutor da classe
     */
    function __construct() {
        $this->mysql = new mysqli();
        $this->usuarioTable = "usuarios";
        $this->companyTable = "empresas";
    }

    function __destruct() {
        //$this->empresaCache = null;
        //$this->mysql->close();
    }

    //TODO modificar para retornar array com os dados do usuario!
    function loadUserData($cpf) {
        $mysqli = new mysqli('localhost', 'root', '', 'div_soft');
        if ($result = $mysqli->query("SELECT * FROM user WHERE cpf=" . $cpf)) {
            while ($row = $result->fetch_object()) {
                return $row;
            }
        }
    }

    function query($query){
        $mysqli = new mysqli('localhost', 'root', '', 'div_soft');
        echo "query";
        //$query = anti_injection($query);
        $resultado = $mysqli->query($query);
        return $resultado;
    }

    function deleteUser($cpf){
        $mysqli = new mysqli('localhost', 'root', '', 'div_soft');
        $result = null;
        $cpf = $this->anti_injection($cpf);
        $query = "DELETE FROM `$this->usuarioTable` WHERE cpf='$cpf'";
        //echo $query;
        $result = $mysqli->query($query);
        //$result = $result->fetch_objetc()
        return $result;
    }

    function deleteCompany($cnpj){
        $mysqli = new mysqli('localhost', 'root', '', 'div_soft');
        $result = null;
        $cnpj = $this->anti_injection($cnpj);
        $query = "DELETE FROM `$this->companyTable` WHERE cnpj='$cnpj'";
        $result = $mysqli->query($query);
        return $result;

    }


    //TODO adicionar funcao de anti_injection
    function saveUser($usuario) {
        $mysqli = new mysqli('localhost', 'root', '', 'div_soft');

        if (mysqli_connect_errno ()) {
            printf("Sem conexao com o banco de dados: %s\n", mysqli_connect_error());
            exit();
        }

        $sql = "INSERT INTO `usuario` (`nome`, `username`,
            `cpf`, `rg`, `curso`, `periodo`, `endereco`,
            `bairro`, `cidade`, `cep`, `telResidencial`,
            `celular`, `email`) VALUES ('" . $usuario['nome'] . "',
                '" . $usuario['cpf'] . "', '" . $usuario['cpf'] . "',
                '" . $usuario['rg'] . "', '" . $usuario['curso'] . "',
                '" . $usuario['periodo'] . "', '" . $usuario['endereco'] . "',
                '" . $usuario['bairro'] . "', '" . $usuario['cidade'] . "',
                '" . $usuario['cep'] . "', '" . $usuario['telRes'] . "',
                '" . $usuario['celular'] . "', '" . $usuario['email'] . "');";
        $mysqli->query($sql);
        $mysqli->close();
    }

    //TODO função para salvar empresa no banco
    function saveCompany($empresa){
        $mysqli = new mysqli('localhost', 'root', '', 'div_soft');

        if (mysqli_connect_errno ()) {
            printf("Sem conexao com o banco de dados: %s\n", mysqli_connect_error());
            exit();
        }

        $query = "INSERT INTO `empresas` (
            `cnpj`, `razao_social`,
            `endereco`, `bairro`,
            `cidade`, `cep`,
            `contato_rh`, `telefone`)
             VALUES (
             '".$empresa['cnpj']."', '".$empresa['razao_social']."',
             '".$empresa['endereco']."','".$empresa['bairro']."',
             '".$empresa['cidade']."','".$empresa['cep']."',
             '".$empresa['contato_rh']."','".$empresa['telefone']."'
             )";

        return $mysqli->query($query);
    }

    //TODO terminar updateUser
    function updateUser($array, $cpf) {
        $mysqli = new mysqli('localhost', 'root', '', 'div_soft');

        //$sql = "UPDATE `div_soft`.`user` SET `rg` = \'rg2\' WHERE `user`.`cpf` = \'123\';";
        $query = "UPDATE `user` SET ";
        if (!empty($usuario['nome']) &&
                ($usuario['nome'] != "") &&
                ($this->array['nome'] != $usuario['nome'])) {
            $query += "`rg` = '" . $usuario['nome'] . "', ";
        }
        if (!empty($usuario['senha']) &&
                ($usuario['senha'] != "") &&
                ($this->array['senha'] != $usuario['senha'])) {
            $query += "`senha` = '" . $usuario['senha'] . "', ";
        }
        if (!empty($usuario['rg']) &&
                ($usuario['rg'] != "") &&
                ($this->array['rg'] != $usuario['rg'])) {
            $query += "`rg` = '" . $usuario['rg'] . "', ";
        }
        if (!empty($usuario['curso']) &&
                ($usuario['curso'] != "") &&
                ($this->array['curso'] != $usuario['curso'])) {
            $query += "`curso` = '" . $usuario['curso'] . "', ";
        }
        if (!empty($usuario['periodo']) &&
                ($usuario['periodo'] != "") &&
                ($this->array['periodo'] != $usuario['periodo'])) {
            $query += "`periodo` = '" . $usuario['periodo'] . "', ";
        }
        if (!empty($usuario['endereco']) &&
                ($usuario['endereco'] != "") &&
                ($this->array['endereco'] != $usuario['endereco'])) {
            $query += "`endereco` = '" . $usuario['endereco'] . "', ";
        }
        if (!empty($usuario['bairro']) &&
                ($usuario['bairro'] != "") &&
                ($this->array['bairro'] != $usuario['bairro'])) {
            $query += "`bairro` = '" . $usuario['bairro'] . "', ";
        }
        if (!empty($usuario['cidade']) &&
                ($usuario['cidade'] != "") &&
                ($this->array['cidade'] != $usuario['cidade'])) {
            $query += "`cidade` = '" . $usuario['cidade'] . "', ";
        }
        if (!empty($usuario['cep']) &&
                ($usuario['cep'] != "") &&
                ($this->array['cep'] != $usuario['cep'])) {
            $query += "`cep` = '" . $usuario['cep'] . "', ";
        }
        if (!empty($usuario['telRes']) &&
                ($usuario['telRes'] != "") &&
                ($this->array['telRes'] != $usuario['telRes'])) {
            $query += "`telResidencial` = '" . $usuario['telRes'] . "', ";
        }
        if (!empty($usuario['celular']) &&
                ($usuario['celular'] != "") &&
                ($this->array['celular'] != $usuario['celular'])) {
            $query += "`celular` = '" . $usuario['celular'] . "', ";
        }
        if (!empty($usuario['email']) &&
                ($usuario['email'] != "") &&
                ($this->array['email'] != $usuario['email'])) {
            $query += "`email` = '" . $usuario['email'] . "', ";
        }
        $query = rtrim($query, ", ");
        $query += ";";

        $mysqli->query($query);
    }

    /**
     * Retorna o usuário do banco, null caso contrário
     * @param <type> $cpf
     * @param <type> $senha
     */
    function verifyUser($cpf, $senha) {
        $mysqli = new mysqli('localhost', 'root', '', 'div_soft');
        $retorno = null;
        $cpf = $this->anti_injection($cpf);
        $senha = $this->anti_injection($senha);
        $query = "SELECT `nome`, `nivel` FROM `$this->usuarioTable` WHERE cpf = '$cpf' AND senha = '$senha';";
        if ($result = $mysqli->query($query)) {
            $row = $result->fetch_object();
            $nome = $row->nome;
            $nivel = $row->nivel;
            $retorno = array( 'nome'=>$row->nome, 'nivel' => $row->nivel);

        }
        $mysqli->close();
        return $retorno;
    }

    function anti_injection($sql) {
        $sql = preg_replace(sql_regcase("/(from|select|insert|delete|where|drop table|show tables|#|\*|--|\\\\)/"), "", $sql);
        $sql = trim($sql);
        $sql = strip_tags($sql);
        $sql = (get_magic_quotes_gpc()) ? $sql : addslashes($sql);
        return $sql;
    }

    function getAllUsers(){
        $mysqli = new mysqli('localhost', 'root', '', 'div_soft');
        $usuarios = array();
        //$usuarios[1] = 0;
        $query = "SELECT * FROM `$this->usuarioTable` WHERE 1;";
        if ($result = $mysqli->query($query)) {
            while ($row = $result->fetch_object()){
              $usuarios[] = $row;
            }
            //$usuarios = $result->fetch_object();
            //var_dump($row);
        }
        //$mysqli->close();
        return $usuarios;
    }

    function getAllCompanies(){
        $mysqli = new mysqli('localhost', 'root', '', 'div_soft');
        $empresas = array();
        //$usuarios[1] = 0;
        $query = "SELECT * FROM `$this->companyTable` WHERE 1;";
        if ($result = $mysqli->query($query)) {
            while ($row = $result->fetch_object()){
              $empresas[] = $row;
            }
            //$usuarios = $result->fetch_object();
            //var_dump($row);
        }
        //$mysqli->close();
        return $empresas;
    }

}

?>
